An increasing number of electronic devices such as mobile telephones, PDAs etc. call for better systems to keep them from being stolen and the information kept therein from being misused. Thus, there is a need for a security system that can prohibit use of such personal electronic devices without a proper authentication.
Bluetooth Technology
The Bluetooth (BT) standard protocol or simply Bluetooth, as defined by the Bluetooth Special Interest Group, is an open standard for peer-to-peer communication and is based on short-range radio transmission in a globally available frequency band providing fast, reliable and secure communication. Providing devices with communication circuits and associated software according to Bluetooth eliminates the need for cables between electronic devices such as PCs, mobile telephones, handheld computers etc.
Bluetooth provides “ad hoc” networking, i.e. Bluetooth devices or units that are within communication distance can spontaneously exchange information with each other. A Bluetooth device or unit is herein taken to mean a device or unit including communication circuits and associated software working according to the Bluetooth specification. Bluetooth units can spontaneously establish small networks, piconets, including up to eight units. One of the units is assigned the role of “master” of the piconet and the others are “slaves”. The slaves communicate with each other via the master. Communication can be established between Bluetooth units that belong to different piconets, e.g. through so called “scatternets”, ad hoc peer-to-peer communication between overlapping piconets.
Mechanisms included a Bluetooth device ensure a high level of security:
A unique device address is assigned to each Bluetooth unit, which is entered in the chip in the manufacturing process.
Authentication prevents access to critical data and makes it impossible to falsify the origin of a message.
128-bit encryption prevents eavesdropping and maintains link privacy.
There are three different types of Bluetooth devices depending on how much transmission power they use:
A class 3 device has a 1 mW transmission power and a range of 0.1-10 meters.
A class 2 device has a transmission power of 1-2.5 mW and a range of 10 meters.
A class 1 device has a transmission power up to 100 mW and a range up to 100 meters.
The Bluetooth architecture, i.e. the circuitry and software required, includes a radio part, a base frequency part and a Link Manager. Bluetooth devices use a radio range at 2.45 GHz and the theoretical maximum bandwidth is 1 Mb/s. The Link Manager is an essential part of the Bluetooth architecture and is responsible for configuration, authentication and handling connections between BT devices.
In every Bluetooth device, the security is maintained by four entities at the link level:
The Bluetooth device address (BD_ADDR), which is a 48-bit address that is unique for each Bluetooth device and is defined by the Institute of Electrical and Electronics Engineers (IEEE).
The Private authentication key, which is a 128-bit number normally derived during the initialization process.
The Private encryption key, having a length of 8-128 bits and derived from the authentication process.
The random number (RAND), which is a frequently changing 128-bit random or pseudo-random number that is produced by the Bluetooth device itself.
The Bluetooth Generic Access Profile has three separate security modes:
Security Mode 1: non-secure
Security Mode 2: service level enforced security
Security Mode 3: link level enforced security
The difference between Security Mode 2 and Security Mode 3 is that a Bluetooth device in Security Mode 3 initiates security procedures before a communication channel is established.
The Bluetooth standard also defines different security levels for devices and services. For devices, there are two levels: “trusted device” and “not trusted device”, where a trusted device has unrestricted access to all services. For services, three security levels are defined: services that require authorization and authentication, services that require authentication only and services that are open to all devices.
A link key is defined as a 128-bit random number. It is shared between two or more parties and is the base for all security transactions. The link key is used in the authentication routine and as one of the parameters in deriving the encryption key. In order to accommodate for different types of applications, four types of link keys have been defined:
The combination key, KAB
The unit key, KA
The temporary key, Kmaster
The initialization key, Kinit
The unit key is generated in a single device when it is installed. The combination key is derived from information from two devices and it is generated for each new pair of Bluetooth devices. The master key is a temporary key, which replaces the current link key. It can be used when the master unit wants to transmit information to more than one recipient. The initialization key is used as link key during the initialization process when there are not yet any unit or combination keys. It is used only during the installation.
The length of the Personal Identification Number (PIN) code used in Bluetooth devices can vary between 1 and 16 octets. The PIN code of one device can be fixed, forcing the connecting device to supply the appropriate PIN code. Another possibility is that the PIN code must be entered to both devices during the initialization.
The initialization key is required when two devices with no prior engagements need to communicate. During the initialization process, the PIN code is entered into both devices. The initialization key itself is generated by the E22 algorithm, which uses the PIN code, the Bluetooth Device Address of the device claiming the initializing process and a 128-bit random number generated by the verifier device as inputs. The resulting 128-bit initialization key is used for key exchange during the generation of a link key. After the key exchange the initialization key is discarded.
An important property of any ad hoc network such as a network working according to the Bluetooth specification is the neighbor discovery feature. The neighbor discovery procedure according to Bluetooth includes the Inquiry message and the Inquiry Response message. An “inquiry” procedure is defined which is used in applications where the device address of the destination is unknown to the source. A Bluetooth compatible unit wanting to discover neighboring Bluetooth units repeatedly transmits Inquiry messages and listens for Inquiry Response messages. An Inquiry message consists of an Inquiry Access Code (IAC). It does not contain any information about the source but may indicate the class of devices which should respond.
A Bluetooth unit receiving an Inquiry message, including a GIAC or an appropriate DIAC, may respond by sending an Inquiry Response message. The Inquiry Response message is actually an Frequency Hop Synchronization (FHS) packet. The FHS packet is a special control packet revealing, among other things, the transmitting unit and the clock of the transmitting unit. The payload field in such a packet includes eleven fields. All fields in the packet, except an AM_ADDR field and an “Undefined” field, indicate properties or parameters of the unit that sends the FHS packet. The three fields Lower Address Part (LAP), Upper Address Part (UAP) and Non-significant Address Part (NAP) fields together contain the BD_ADDR of the transmitting device. By listening for Inquiry Response messages the unit that initiated the Inquiry procedure can collect the BD_ADDR and internal clock values of the neighboring Bluetooth units.
An FHS packet is also used for other purposes according to the Bluetooth specification, in addition to the use as the Inquiry Response message, e.g. for a paged master response.
Related to the Inquiry procedure is the Page procedure, which is used to establish an actual connection between two BT units. Once the BD_ADDR of a neighboring unit is known to a unit, the paging unit, as a result of an Inquiry procedure, the neighboring unit can be paged by sending a Page message. Also the knowledge of the internal clock value of the unit to be paged will potentially speed up the Page procedure, since it makes it possible for the paging unit to estimate when and on which frequency hop channel the neighboring unit will listen for Page messages.
A Page message consists of the Device Access Code (DAC), derived from the BD_ADDR of the paged unit. A unit adapted to communicate according to the Bluetooth specification and receiving a Page message including its own DAC responds by sending an identical packet, i.e. including only the DAC of the paged unit. The paging unit then replies by sending an FHS packet, including the BD_ADDR of the paging unit, the current value of the internal clock of the paging unit, the AM_ADDR assigned to the paged unit and some other parameters. The paged unit then responds once again by transmitting its DAC and thereby the connection between the two units is established.
If the paging unit already was the master of a piconet, the paged unit has now joined this piconet as a new slave unit. Otherwise, the two units have just formed a new piconet having the paging unit as the master unit. Since the Inquiry message does not include any information on the sender thereof, in particular not its BD_ADDR, the unit that initiated the INQUIRY procedure is the only unit that can initiate a subsequent Page procedure. Thus, the unit initiating an Inquiry procedure will also be the master of any new piconet that is formed as a result of a subsequent Page procedure.
Thus, in setting up a Bluetooth link between two units, the BD_ADDR of each of the two participating units is transmitted to the other one.